package cn.xej.health.user.service;

import cn.xej.health.common.domain.UserDto;
import cn.xej.health.common.utils.CommonResult;
import cn.xej.health.common.utils.PageUtils;
import cn.xej.health.user.entity.User;
import cn.xej.health.user.vo.VoUser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
 * @author xej
 */
public interface UserService extends IService<User> {
    /**
     * 添加用户
     * @param user
     */
    void insertUser(User user);

    /**
     * 查询数据
     * @param params
     * @return
     */
    PageUtils queryPage(Map<String, Object> params);

    /**
     * 根据用户名获取通用用户信息
     * @param username
     * @return
     */
    UserDto loadUserByUsername(String username);

    /**
     * 登录
     * @param username
     * @param password
     * @return
     */
    CommonResult login(String username,String password);

    /**
     * 获取用户信息
     * 获取用户菜单
     * @param username
     * @return
     */
    CommonResult queryInfo(String username);

    /**
     * 查询所有用户
     * @param pageIndex
     * @param pageSize
     * @param searchName
     * @return
     */
    CommonResult queryList(Integer pageIndex,Integer pageSize,String searchName);

    /**
     * 获取剩余团队长
     * @return
     */
    CommonResult queryCaptainList();

    /**
     * 获取该团队的医生
     * @param tid
     * @param pageIndex
     * @param pageSize
     * @param searchName
     * @return
     */
    CommonResult initMemberList(Integer tid,Integer pageIndex,Integer pageSize,String searchName);

    /**
     * 获取剩余的医生
     * @return
     */
    CommonResult initRemainUserList();

    /**
     * 根据用户编号获取用户信息
     * @param uuidList
     * @return
     */
    CommonResult getTeamDockerList(String uuidList);
}
